#include <iostream>
using namespace std;

//class A
//{
//public:
//	A() { cout <<"A::A()" << this << endl; }
//	void funA() { cout << "A::fun()::this:" << this << endl; }
//	int m_a = 1;
//};
//
//class B
//{
//public:
//	B() { cout << "B::B()" << this << endl; }
//	void funB() { cout << "B::fun()::this:" << this << endl; }
//	int m_b = 2;
//};
//
//class C : public A, public B
//{
//public:
//	C(){ cout << "C::C()" << this << endl; }
//	void funC() { cout << "C::fun()::this:" << this << endl; }
//	void funB() { cout << "C::funB()::this:" << this << endl; }
//	int m_c = 3;
//
//};
//
//int main()
//{
//	sizeof A;
//	sizeof(B);
//	sizeof(C);
//	C myc;
//	myc.funA();
//	myc.funB();		// this指针调整，多了4字节
//	myc.funC();
//	return 0;
//}

//class MOTX
//{
//public:
//	MOTX() { cout << "good!" << endl; }
//};
//class MATX
//{
//public:
//	MATX() { cout << "hhhhh" << endl; }
//};
//
//class MBTXPanrent
//{
//public:
//	MBTXPanrent() { cout << "MBTXPanrent::MBTXPanrent()" << endl; }
//};
//
//class MBTX : public MBTXPanrent
//{
//public:
//	MBTX() { int m_a = 10; }	// 自动调用父类默认构造，自动初始化虚函数表指针
//	int m_a;
//	int m_b;
//	void funC() { cout << "void funC()" << endl; }
//	virtual void virtualfun() { cout << "virtualfun()" << endl; }
//};
//
//int main()
//{
//	MBTX myb;
//
//	return 0;
//}




//// 虚继承
//class Grand
//{
//public:
//	int m_grand;
//};
//
//class A1 : virtual public Grand
//{
//public:
//	int m_a1;
//};
//
//class A2 : virtual public Grand		// 虚继承，只会让其派生类中含有一个Grand类
//{
//public:
//	int m_a2;
//};
//
//class C : public A1, public A2	// 菱形继承，C有A1继承来的Grand，还有A2继承来Grand
//{
//public:
//	int m_a2;
//};
//
//
//int main()
//{
//	C myc;
//
//	// 没有些虚继承，这个访问都是不允许的
//	//myc.m_grand;			
//	//C::A1::Grand::m_grand;	// 通过A1访问
//	//C::A2::Grand::m_grand;	// 通过A2访问
//
//	myc.m_grand;
//	cout << sizeof(C) << endl;	// 大小24
//
//	return 0;
//}


class Time
{
protected:
	int _second {0};	// 定义变量时赋予初值
	int _minute = 0;
};